package jacky.lanlan.song.domain;

/**
 * RDBMS 类型。
 * <p>
 * 枚举常用的RDBMS及其JDBC驱动。
 * @author Jacky.Song
 */
public enum RDBMS{
	/**
	 * Microsoft SQLSERVER
	 */
	SQL_SERVER{
		@Override
		public String getDriver() {
			return "com.mysql.jdbc.Driver";
		}
	},
	/**
	 * ORACLE
	 */
	ORACLE{
		@Override
		public String getDriver() {
			return "oracle.jdbc.driver.OracleDriver";
		}
	},
	/**
	 * HQSQL
	 */
	HQSQL{
		@Override
		public String getDriver() {
			return "org.hsqldb.jdbcDriver";
		}
	},
	/**
	 * MYSQL
	 */
	MYSQL{
		@Override
		public String getDriver() {
			return "com.mysql.jdbc.Driver";
		}
	};
	
	/**
	 * 装载JDBC Driver。
	 * @throws Exception 如果在装载时出错
	 */
	public void loadDriver() throws ClassNotFoundException{
		Class.forName(getDriver());
	}
	
	/**
	 * 返回这个RDBMS的JDBC驱动类名。
	 */
	public abstract  String getDriver();
}